package cn.tjie.basic.listener;

import cn.tjie.sys.service.IPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class PermissionScanInitListener implements ServletContextListener {

    @Autowired
    private IPermissionService permissionService;
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //扫描我们的自定义注解：获取name和sn
        //扫描每个接口类：1.类上的@RequestMapping 2.每个方法上XxxMappering
        //System.out.println("上下文对象创建成功");
        //这里面的业务随着接口的变多，可能执行时间会非常久，影响性能，影响主线程的启动
        new Thread(new Runnable() {//不用主线程去执行，用一个新的线程去执行
            @Override
            public void run() {
                //可以在这里扫描我们自定义的注解@PreAuthorize，然后将信息存储到t_permission表
                //这样就无需手动录入信息到权限t_permission表了
                permissionService.scanPermission();
            }
        }).start();
    }
}
